<?php

class equipeSearch extends Object{
    
    private $dados = array(
        'pesquisar' => array(
            'name' => "Pesquisar",
            'type' => 'varchar',
            'size' => '50',
            'notnull' => true,
            //'description' => 'Procure por funcionários, empresas ou dados das visitas da sua equipe'
        ),
        /*
        'visualizar' => array(
            'name'    => 'Visualizar',
            'type'    => 'enum',
            'default' => 'meus',
            'options' => array(
                'meus'  => 'Somente meus dados',
                'todos' => 'Todos da Equipe',
             )
        ),*/
        'filtrar' => array(
            'name'    => 'Filtros',
            'type'    => 'enum',
            'default' => 'funcionario',
            'options' => array(
                'funcionario'  => 'Funcionários',
                'empresa'      => 'Empresas',
                'visita'       => 'Visitas',
             )
        ),
        
    );
    
    private $page = 0;
    public function getDados(){
        return $this->dados;
    }
    
    public function getComponentName($post){
        if(empty($post) || !isset($post['filtrar'])) return "";
        return "venda/".$post['filtrar'];
    }
    
    public function search($cod_equipe, $post){
        //print_r($post);die();
        if(empty($post) || !isset($post['filtrar']))  return array();
        
        $q = trim(strip_tags($post['pesquisar']));
        $this->query = "venda_equipe_cod = '$cod_equipe'";
        
        $method = $post['filtrar'];
        if(method_exists($this, $method))
            return $this->$method($q);
    }
    
    private function funcionario($pesquisa){
        $this->LoadResource('database', 'db');
        $this->LoadModel('venda/visita'     , 'vis');
        $this->LoadModel('venda/empresa'    , 'emp');
        $this->LoadModel('venda/funcionario', 'fun');
        $this->db->Join($this->emp->getTable(), $this->vis->getTable(), array('venda_empresa_cod'), array('venda_empresa_cod'), "LEFT");

        $query = "(venda_funcionario_nome LIKE '$pesquisa%' OR venda_funcionario_email LIKE '$pesquisa%')";
        $campos = $this->fun->getCampos();
        foreach ($campos as $name => $var) {break;}
        $campos[$name] = "DISTINCT ". $campos[$name];
        return $this->fun->paginate($this->page, "", "", "", 20, $campos,$query,  "venda_funcionario_nome DESC");
    }
    
    private function empresa($pesquisa){
        $this->LoadResource('database', 'db');
        $this->LoadModel('venda/visita'     , 'vis');
        $this->LoadModel('venda/empresa'    , 'emp');
        $this->db->Join($this->emp->getTable(), $this->vis->getTable(), array('venda_empresa_cod'), array('venda_empresa_cod'), "LEFT");
        
        $query = "(venda_empresa_nome LIKE '$pesquisa%')";
        $campos = $this->emp->getCampos();
        foreach ($campos as $name => $var) {break;}
        $campos[$name] = "DISTINCT ". $campos[$name];
        return $this->emp->paginate($this->page, "", "", "", 20, $campos,$query,  "venda_empresa_nome DESC");
    }
    
    private function visita($pesquisa){
        $this->LoadResource('database', 'db');
        $this->LoadModel('venda/visita'     , 'vis');
        $this->LoadModel('venda/visitahist' , 'hist');
        $this->db->Join($this->vis->getTable(),$this->hist->getTable(), array('venda_visita_cod'), array('visita'), "LEFT");

        $query = "$this->query AND (
            mensagem LIKE '%$pesquisa%' 
            OR venda_visita_statuslabel LIKE '%$pesquisa%' 
            OR venda_visita_descricao LIKE '%$pesquisa%'
        )";
        $campos = $this->vis->getCampos();
        foreach ($campos as $name => $var) {break;}
        $campos[$name] = "DISTINCT ". $campos[$name];
        return $this->vis->paginate($this->page, "", "", "", 20, $campos,$query,  "criado ASC");
    }
    
    public function consultarEndereco($post){
        if(empty($post) || !isset($post['cep'])) return;
        
        $cep     = $post['cep'];
        $inicial = trim(isset($post['inicial'])?$post['inicial']:"");
        $final   = trim(isset($post['final'])  ?$post['final']  :"");
        $where   = "pessoal_endereco_cep = '$cep'";
        if($inicial != "") $where .= "AND pessoal_endereco_num >= '$inicial' ";
        if($final != "")   $where .= "AND pessoal_endereco_num <= '$final' ";
        
        $this->LoadResource('database', 'db');
        $this->LoadModel('pessoal/endereco', 'end');
        $this->LoadModel('venda/empresa', 'emp');
        
        $dados = array('DISTINCT venda_empresa_cod, venda_empresa_nome as Nome', 'pessoal_endereco_num as Numero');
        $this->db->Join($this->emp->getTable(), $this->end->getTable());
        $var = $this->emp->selecionar($dados, $where, "", "", "pessoal_endereco_num ASC");
        if(!empty($var)){
            $this->LoadResource('html', 'html');
            foreach($var as &$v){
                $v['Ações'] = $this->html->getActionLinkIfHasPermission('venda/empresa/show/'.$v['venda_empresa_cod'], "Visualizar empresa");
                unset($v['venda_empresa_cod']);
            }
        }
        return $var;
    }
    
}

?>
